const path = require('node:path')

$(function () {

    //添加水印
    $('#wm_color').colorpicker({
        useAlpha: true,
        format: 'rgba',
        color: 'rgba(255, 18, 0, 0.7)'
    })

    setTimeout(() => {
        $('#wm_color').css('background-color', 'rgba(255, 18, 0, 0.7)');
        $("#float_right").css('position', 'absolute')
        $("#float_right").css('right', '1rem')
    }, 500);

    $('#wm_color').on('colorpickerChange', function (event) {
        console.log(event.color.toString())
        $('#wm_color').css('background-color', event.color.toString());
    });

    const ipc = require('electron').ipcRenderer

    $("#wm_choise").click(function () {
        ipc.send('open-file-dialog')
    })

    $("#wm_schoise").click(function() {
        ipc.send('save-file-dialog')
    })

    ipc.on('selected-files', function (event, res) {
        if (res.canceled == false) {
            $("#choise_file").val(res.filePaths[0])
            $("#saved_file").val(res.filePaths[0].replace('.pdf', '-waterMark.pdf'))
        }
    })

    ipc.on('saved-files', function (event, res) {
        if (res.canceled == false) {
            $("#saved_file").val(res.filePath)
        }
    })

    $("#wm_style1, #wm_style2").click(function(){
        const center = $("#wm_style1").prop('checked')

        $("#wm_x").attr('readonly', center)
        $("#wm_y").attr('readonly', center)
        $("#wm_h").attr('readonly', center)
        $("#wm_l").attr('readonly', center)
    })

    $("#add_water").click(function () {
        ipc.send('add-watermark', [{
            file: $("#choise_file").val(),
            txt: $("#wm_txt").val(),
            size: $("#wm_size").val(),
            style: $("#wm_style1").prop('checked'),
            x: $("#wm_x").val(),
            y: $("#wm_y").val(),
            h: $("#wm_h").val(),
            l: $("#wm_l").val(),
            dg: $("#wm_dg").val(),
            font: $("#wm_font").val(),
            sfile: $("#saved_file").val(),
            color: $("#wm_color").val()
        }])
    })

    ipc.on('add-watermark-end', function (event, args) {
        if (args[0] > 0) {
            alert('创建文件成功！')
        } else {
            alert('创建文件失败！')
        }
    })

    ipc.send('get-fonts')
    ipc.on('get-fonts-end', function (event, res) {

        res.map((f, inx) => {
            $("#wm_font").append(`<option value="${f.font}">${f.name}</option>`)
        })

        setTimeout(function(){
            $("#wm_font").val('simfang.ttf')
        }, 200)

    })

    //合并文件
    $("#merge_choise").click( function() {
        ipc.send('open-mfile-dialog')
    })

    ipc.on('selected-mfiles', function (event, res) {
        console.log(res)
        if (res.canceled == false) {
            res.filePaths.map( (file, inx) => {
                $("#merge_list").append(`<option value="${file}">${path.basename(file)}</option>`)
            })
            $("#mergn_list_count").text(res.filePaths.length)
        }
    })

    $("#merge_schoise").click( function() {
        ipc.send('save-sfile-dialog')
    })

    ipc.on('saved-sfiles', function (event, res) {
        console.log('path', res)
        if (res.canceled == false) {
            $("#merge_sfile").val(res.filePath)
        }
    })

    //删除选择的selected
    $("#merge_remove_sel").click( function() {
        $("#merge_list option:selected").remove()
    })

    $("#merge_files").click(function () {
        const v = $("#merge_list").val()
        if( !v || v.length === 0) {
            $("#merge_list").find('option').prop('selected',true);
        }

        setTimeout(() => {
            ipc.send('merge-files', [{
                files: $("#merge_list").val(), //待处理
                repeat: $("#remove_repeat").prop('checked'),
                sfont: $("#merge_sfile").val(),
            }])
        }, 100);
    })

    ipc.on('merge-files-end', function (event, args) {
        if (args[0] === 0) {
            alert('创建文件成功！')
        } else if (args[0] > 0) {
            alert(`创建文件成功，并跳过 ${args[0]} 个重复页！`)
        } else {
            alert('创建文件失败！')
        }
    })

    //分割文件
    $("#split_choise").click( function() {
        ipc.send('open-split-file-dialog')
    })

    ipc.on('selected-split-file', function (event, res) {
        if (res.file) {
            $("#split_file").val(res.file)
            $("#split_sfile").val(path.dirname(res.file))
            $("#split_pagecount").html(res.count)
        }
    })

    $("#split_save_choise").click( function() {
        ipc.send('save-split-dir-dialog', [$("#split_sfile").val()])
    })

    ipc.on('saved-split-dir', function (event, res) {
        console.log('path', res)
        if (res.canceled == false) {
            $("#split_sfile").val(res.filePaths[0])
        }
    })

    $("#split_add_range").click(function(){
        const s = $("#split_range_start").val() * 1
        const e = $("#split_range_end").val() * 1
        const n = $("#split_pagecount").text() * 1
        let html = ''
        if( s < 0 || e < 0) {
            alert('不支持负数范围, 请重新输入！')
        }else if(s > n || e > n) {
            alert('输入页码超出总页数, 请重新输入！')
        }else if( s > 0 && e > 0){
            if( s === e ) {
                html = `<option value="${s}">${s}</option>`
            }else if(s < e) {
                html = `<option value="${s}~${e}">${s}~${e}</option>`
            }else if(s > e) {
                html = `<option value="${e}~${s}">${e}~${s}</option>`
            }
        }else if( s > 0 ) {
            html = `<option value="${s}">${s}</option>`
        }else if( e > 0 ) {
            html = `<option value="${e}">${e}</option>`
        }
        $("#split_list").append(html)
        $("#split_range_start").val('')
        $("#split_range_end").val('')
    })

    $("#split_remove_sel").click(function(){
        $("#split_list option:selected").remove()
    })

    $("#split_add_single").click(function(){
        $("#split_list").html('')
        const n = $("#split_pagecount").text() * 1
        for(let i = 0; i < n; i ++){
            $("#split_list").append(`<option value="${i+1}">${i+1}</option>`)
        }
    })

    $("#split_remove_ht").click(function(){
        $("#split_list").html('')
        const n = $("#split_pagecount").text() * 1
        if( n < 3){
            alert('文件页数小于3页，无法使用此功能!')
        }else {
            $("#split_list").append(`<option value="1">1</option>`)
            if( n === 3){
                $("#split_list").append(`<option value="2">2</option>`)
            }else {
                $("#split_list").append(`<option value="2~${n-1}">2~${n-1}</option>`)
            }
            $("#split_list").append(`<option value="${n}">${n}</option>`)
        }
    })

    $("#split_files").click(function () {
        const v = $("#split_list").val()
        if( !v || v.length === 0) {
            $("#split_list").find('option').prop('selected',true);
        }

        setTimeout(() => {
            ipc.send('split-files', [{
                range: $("#split_list").val(), //待处理
                file: $("#split_file").val(),
                sdir: $("#split_sfile").val(),
            }])
        }, 100);
    })

    ipc.on('split-files-end', function (event, args) {
        if (args.length > 0) {
            let err = 0;
            for(let i = 0; i<args.length; i++){
                for(let key in args[i]){
                    if( args[i][key] < 0) err = err + 1;
                }
            }
            if( err === args.length ){
                alert('创建文件失败！')
            }else if( err === 0){
                alert('创建文件成功！')
            }else if( err > 0) {
                alert('创建文件部份成功, 失败' + err + '个！')
            }
        } else {
            alert('创建文件失败！')
        }
    })

    $("#open_gitee").click(function(){
        ipc.send('open-url', 'https://gitee.com/cadcamzy/pdf_watermark')
    })

    $("#open_web").click(function(){
        ipc.send('open-url', 'https://www.8282.info')
    })
    
})
